<?php
/*
+--------------------------------------------------------------------------
|   Web: http://www.rongbay.com 
|   Started date : 30/06/2008
+---------------------------------------------------------------------------
|   > Script written by Nova
+---------------------------------------------------------------------------
*/

if (preg_match("#" . basename(__FILE__) . "#", $_SERVER['PHP_SELF'])) {
	die('This page cannot be called directly.') ;
}

class ajax_user
{
	function playme(){
		 $code = Url::getParam('code');
        //yêu cầu đặt tên $code=tên của method trong class

        if (method_exists($this, $code)) {
            $this->$code();
        } 
        else
        {
            $this->home();
        }
	}

    function home(){
        global $display;
        die("Nothing to do...");
    }
    
    function fn_captcha_register(){
        if(User::checkLock4Ever(1)){
            echo "false";
            exit;
        }
        $captcha_register = Url::getParam('captcha_register');

        if(isset($_SESSION["ecore_validate"]) && $captcha_register!='' && $captcha_register == $_SESSION["ecore_validate"]){
            echo "true";
            exit;
        }
        else{
            echo "false";
            exit;
        }
    }

    function login_user(){

        $user_email = trim(Url::getParam('user'));
        $pass 		= Url::get('pass');

        if (strlen($user_email) <3  || strlen($user_email) >50  || !preg_match("/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i",$user_email) || strlen($pass)<6){
            echo 'nodata';
            exit;
        }

        $user_email	=	str_replace(array('"','\\'),'_',$user_email);
        
        $user_data	=	DB::fetch('SELECT id,password, is_active, block_time FROM user WHERE email="'.$user_email.'"');

        if(!USER_ACTIVE_ON  && $user_data && $user_data['is_active']==2)
        {
            DB::query("UPDATE user SET is_active=1 WHERE id=".$user_data['id']);
            DB::delete('user_active','user_id='.$user_data['id']);

            User::getUser($user_data['id'],1);
        }
        
        if($user_data['block_time']==-1)
        {
            echo('unsuccess');
            exit;
        }
        elseif($user_data && $user_data['password'] == User::encode_password($pass))
        {
            if(USER_ACTIVE_ON && $user_data['is_active']==2)//Chưa kích hoạt
            {
                echo('un_active');
            }
            else
            {
                if($user_data['block_time'] > TIME_NOW || $user_data['block_time']==-1)//Bị khóa hoặc khóa vĩnh viễn
                {
                    $alert='';
                    $user_lock=DB::select('user_lock','user_id='.$user_data['id'].' AND type IN(0,1,3) ORDER BY id DESC');
                   
                     if($user_lock)
                     {
                        if($user_lock['type']==1)//Khoá vĩnh viễn
                        {
                            User::LogOut();
                            DB::delete(_SESS_TABLE,'user_id='.$user_data['id'],__LINE__.__FILE__);
                            exit;
                        }
                        elseif($user_lock['type']==3)//Khoá vĩnh viễn + cookie
                        {
                            User::lock4Ever(true,$user_data['id']);
                            exit;
                        }
                        else
                        {
                            if($user_lock['note'])
                            {
                            	$user_lock['note']="\n".'Lý do:"'.str_replace(array('"',"'"),'',$user_lock['note']).'"';
                            }

                            $alert='Tài khoản của bạn đang tạm khoá tới '.date('H:i, d/m/Y',$user_data['block_time']).'!'.$user_lock['note'];
                        }
                    }
                    
                    $_SESSION['user_lock'] = true;
                }

                if(Url::get('set_cookie') == 1)
                {
                    $year = 60 * 60 * 24 * 365 + TIME_NOW;

                    ECLib::my_setcookie("ecore_id", $user_data['id'], $year);
                    ECLib::my_setcookie("password", $user_data['password'], $year);
                }
                
                $_SESSION['is_load_page_first'] = 1;// dung jQueryUI de load bang thong bao

               // User::get_wishlist();
                
                User::LogIn($user_data['id']);

                if(isset($_SESSION['user_lock']) && $_SESSION['user_lock']){
                    echo $alert;
                }
                else
                {
                    echo('success');
                }
            }
        }
        else
        {
            echo('unsuccess');
        }
        
        exit;
    }

    function check_exist_account()
    {
        if(user::checkLock4Ever(1))
        {
            echo "false";
            exit;
        }
        elseif(isset($_REQUEST['email']))
        {
            $email = trim($_REQUEST['email']);

            $sql = "SELECT id FROM user WHERE email = '".$email."'";
            
            DB::query($sql);

            if(DB::num_rows())
            {
                echo 'false';
            }
            else
            {
                echo 'true';
            }
            
            exit;
        }
    }

    function register_email()
    {
    	$error 	= '';
        $output = array('error'=>'');
        
        //$email 		= Url::getParam('user_email', "");
        $mobile 	= Url::getParam('user_mobile', "");
        $fullname 	= Url::getParam('full_name', "");
        if (User::id() == 0)
        {
        	$error = "Cần đăng nhập để sử dụng chức năng này";
        }
        if (!$mobile && !$fullname) 
        {
        	$error = "Nhập thông tin mobile và họ tên đầy đủ";
        }
        /*elseif (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $email))
        {
        	$error = "Email không đúng định dạng";
        }*/
        
        if (!$error)
        {
        	$input['user_mobile'] 	= $mobile;
        	$input['user_name'] 	= $fullname;
            DB::update('user', $input, 'id='.(int)User::id());
            User::getUser((int)User::id(), 1);
        }
        
        $output['error'] = $error;
        echo json_encode($output);
        exit();
    }

    function check_password()
    {
        if(isset($_REQUEST['old_password']) && User::is_login())
        {
            $password 	= $_REQUEST['old_password'];
            $sql 		= "select id from account where password = '".User::encode_password($password)."' and id='".User::$current->data['id']."'";

            DB::query($sql);
            
            if(DB::num_rows())
            {
                echo 'true';
            }
            else
            {
                echo 'false';
            }

            exit;
        }
        else
        {
            echo "no_login";
            exit;
        }
    }

    function forgot_password()
    {
        $email 				= Url::get("email","");
        $captcha_register 	= Url::getParam('captcha_register');
        $str_error 			= "";

        if($email && $captcha_register)
        {
            $sql = "SELECT id FROM account WHERE email = '$email'";
            DB::query($sql);

            if(!DB::num_rows())
            {
                $str_error .= "<div>Email này không tồn tại</div>";
            }

            if(!isset($_SESSION["ecore_validate"]) || $captcha_register=='' || $captcha_register != $_SESSION["ecore_validate"]){
                $str_error .= "<div>Mã bảo mật không đúng</div>";
            }

            if(!$str_error){
                if($row=DB::fetch("SELECT id,user_name,email FROM account WHERE email ='$email'")){

                    $id 	= $row['id'];
                    $user 	= $row['user_name'];
                    $email 	= $row['email'];

                    $link1 = '<a href="'.WEB_ROOT.ECRewrite::formatUrl('?page=forgot_password&u='.md5($user.$email).'&id='.$id).'"><b>Khôi phục Mật khẩu</b></a>';
                    $link2 = '<a href="'.WEB_ROOT.ECRewrite::formatUrl('?page=forgot_password&u='.md5($user.$email).'&id='.$id).'"><b>Khoi phuc Mat khau</b></a>';

                    $message = file_get_contents('templates/ForgotPassword/messenger.html');

                    $message = str_replace('[[|link1|]]',$link1,$message);
                    $message = str_replace('[[|link2|]]',$link2,$message);
                    $message = str_replace('[[|user|]]',$user,$message);

                    if(System::sendECEmail($email,'Khôi phục mật khẩu!',$message)){
                        $str_error = "";
                    }
                    else{
                        $str_error .= "<div>Email chưa được gửi đi. Hãy thử lại lần nữa</div>";
                    }
                }
            }

        }
        else{
            $str_error = "<div>Có lỗi xẩy ra. Không thực hiện được</div>";
        }

        echo $str_error;
        exit();
    }
	
	function check_online(){
		$user_id =	(int)Url::get('user_id');
		
		if($user_id){
			$json = '';
		
			$sql="SELECT user_id, user_name, session_expires FROM "._SESS_TABLE." WHERE user_id=$user_id ORDER BY session_expires DESC LIMIT 1";
			
			$re=DB::query($sql);								
			if($re){
				
				$user = mysql_fetch_assoc($re);
				if($user && $user['session_expires']>( TIME_NOW - 900 )){
					echo 1;
					exit;
				}
			}
		}
		echo 0;
		exit;
	}

    function get_fullname_useronline(){
        if(User::is_login()){
            echo User::$current->data['full_name'];
        }else{
            echo '';
        }
    }
    function register_user(){
        $email = Url::getParam('email');
        $pass = User::encode_password(Url::getParam('password'));
        $phone = Url::getParam('phone');
        $name = Url::getParam('name');
        $check = DB::select_all(TABLE_PREFIX.'user', 'email="'.$email.'"');
        if(sizeof($check) == 0){
            $insert = array(
            'email' => $email,
            'password' => $pass,
            'mobile_phone' => $phone,
            'create_time' => TIME_NOW,
            'full_name'  => $name,
            'reg_ip' => ECLib::ip(),
            'is_active' => 2
        );
            $user_id = DB::insert(TABLE_PREFIX.'user', $insert);
                        if($user_id)
				{
					$_SESSION['just_registed']		=	TIME_NOW;
					ECLib::my_setcookie('just_registed',TIME_NOW);
					
					if(USER_ACTIVE_ON)
					{
						$active=DB::select('user_active','user_id='.$user_id);
						
						$active_code		= md5(TIME_NOW.$pass);
						
						if($active)
						{
							$active	=	array(
												'id'		 =>$active['id'],
												'user_id'	 =>$user_id,
												'active_code'=>$active_code,
												'time'		 =>TIME_NOW,
											 );
						}
						else
						{
							$active	=	array(
												'user_id'	 =>$user_id,
												'active_code'=>$active_code,
												'time'		 =>TIME_NOW,
												);
						}
						
						DB::insert('user_active',$active,true);
						
						global $display;
						
						$display->add("active_account", 0);
	                    
						$display->add('rb_url',WEB_ROOT);
                                                $display->add('WEB_DOMAIN',WEB_DOMAIN);
                                                $display->add('WEB_NAME',WEB_NAME);
						$display->add('user_id',$user_id);
						$display->add("user_email", $email);
                                                $display->add("user_name", $name);
	                    
						$display->add('active_code',$active_code);
						$display->add('SUPPORT_TEL',SUPPORT_TEL);
						$display->add('SUPPORT_EMAIL',SUPPORT_EMAIL);
						
                                                                $content_email=$display->output('send_active_mail',1,'RegisterSuccess');
						
						//Send email here;
						if(EMAIL_ON && System::sendECEmail(TEST_EMAIL != '' ? TEST_EMAIL : $email,'Kích hoạt tài khoản!',$content_email))
						{
                                                    echo 'success';
                                                    exit;
							//Url::redirect('reg_success',array('cmd'=>'notify'));//$this->setFormSucces('','<b>Chúc mừng bạn đã đăng ký tài khoản thành công!</b><br /><br />Mã kích hoạt đã được gửi đi tới E-mail: "'.$email.'"<br />Bạn hãy check lại Email để kích hoạt tài khoản của mình!');
						}
						else
						{
							//$this->setFormSucces('','<b>Chúc mừng bạn đã đăng ký tài khoản thành công!</b><br /><br />Tuy nhiên hệ thống chưa gửi được Mã kích hoạt tới E-mail: "'.$email.'"!<br />Bạn có thể <a href="'.Url::build('reg_success',array('cmd'=>'active')).'">click vào đây</a> để hệ thống gửi lại mã kích hoạt vào Email của mình!');
						}
						
						//$this->show_form=false;
					}
					else
					{
						User::Login($user_id);
						Url::redirect('reg_success');
					}
                                        echo 'success';
                                        exit;
				}
            else echo 'fail';
        }else echo 'exist';
        
        
    }

}
?>